Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Mar 2021 23:29:39 +0900 (JST)
From:      3226388001 <3226388001@jcom.home.ne.jp>
To:        freebsd-users-jp <freebsd-users-jp@freebsd.org>
Subject:   [FreeBSD-users-jp 96716] Re:  =?iso-2022-jp?b?GyRCIVYbKEJ2NhskQiVXJWklORsoQiAbJEI4R0RqGyhC?= =?iso-2022-jp?b?SVAbJEIlNSE8JVMlOSFXJEckThsoQklQSVAbJEIlSCVzJU0layROGyhC?= =?iso-2022-jp?b?GyRCQF9EaiROO0VKfRsoQg==?=
Message-ID:  <202103121429.12CETcC6087205@freebsd.domain.local>
In-Reply-To: <CANtk6Sg7%2BpzbvkmSnSJpf52k=nc0LMKfQVN-73Jbtvqwibp5Cg@mail.gmail.com>
References:  <20210305.235106.1002415398090318509.take@kasaneiro.jp> <CANtk6Sg7%2BpzbvkmSnSJpf52k=nc0LMKfQVN-73Jbtvqwibp5Cg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
$BDL$j$9$,$j$N<T$G$9!#(B

$BIaCJ$OKX$I$3$N%a!<%k%s%0%j%9%H$OFI$s$G$$$J$$$N$G$9$,!"(B
$B6vA3K\7o$r8+$+$1$^$7$F!&!&(B

$BK\Bj!J!V(Bv6$B%W%i%9(B $B8GDj(BIP$B%5!<%S%9!W!K$G$OL5$+$C$?$h$&$G$9$,!"(B
$B!V(Bv6$B%W%i%9!W$NJ}$N$3$A$i!'(B

> (3) MAP-E$BJ}<0$KBP1~$9$k$h$&!"(BFreeBSD $B$N(B NAT $B<~$j$K<j$rF~$l$k(B

$B?tG/A0$K8D?ME*$K<j$rF~$l$F;HMQ$7$F$$$kJ*$,$"$j$^$9$N$G!"(B
$B$b$7$+$7$?$i1~MQ$G$-$kJ}$,$$$i$C$7$c$k$+$b$7$l$J$$$H;W$$!"(B
$B$4;29M$^$G$K>pJs$rE=$i$;$FD:$-$^$9!#(B

$B"(8D?ME*MQES$J$N$GHFMQ2=$O$7$F$*$i$:!"(B

$B!!!&3dEv$F%"%I%l%9$K1~$8$?%Q%i%a!<%?$r@_Dj$H%Q%C%AFb$KKd$a9~$`I,MW$,$"$j!"(B
$B!!!!$3$NJU$j(B($BNc(B)$B$r;29M$KCM$r5a$a$kI,MW$,$"$j$^$9(B:
$B!!!!!!(Bhttps://gato.intaa.net/archives/13173
$B!!!!!!(Bhttp://ipv4.web.fc2.com/map-e.html

$B!!!&(Bipfw nat$B$r;HMQ$7$F$$$^$9$,!"$=$NCf$N(B"same_ports"$B%9%$%C%A$r(B
$B!!!!(BMAP-E$BF0:n$X$N@ZBX%9%$%C%A$KE>MQ$7$F$$$^$9!#(B

$B"(?tG/4V<BMQ$7$F$$$?$b$N$,%Y!<%9$G$9$,!"(B
$B!!:#2sEj9FMQ$K@_Dj$NCj>]2=$H%Q%C%A$N;EN)$FD>$7$r$7$F$$$k$N$G!"(B
$B!!8m$j$,$"$C$?$j$7$?$i$4$a$s$J$5$$!#(B



** /etc/rc.conf **
ifconfig_<v6plusIF>_ipv6="inet6 accept_rtadv"
ifconfig_<v6plusIF>_alias0="inet6 <CE IPv6 240b:xxxxxxxx> prefixlen 64"

ifconfig_gif0="inet6 tunnel <CE IPv6 240b:xxxxxxxx> <PEERADDR 2404:xxxxxxxx> prefixlen 64 mtu 1460 up"
ifconfig_gif0_alias0="inet <CE IPv4 $B%"%I%l%9(B> <CE IPv4 $B%"%I%l%9(B> netmask 255.255.255.255"


** ipfw$B%k!<%k(B **

kldload ipfw_nat
kldload ipfw_pmod
sysctl net.inet.ip.fw.one_pass=0

MAP_E_MYIP=<CE IPv4 $B%"%I%l%9(B>

ipfw nat 100 config ip ${MAP_E_MYIP} same_ports deny_in

00100 allow ip from any to any via lo0
  :
      skipto 20000 ip6 from any to any via <v6plusIF>
  :
      reass ip from any to any in
      allow icmp from any to any in icmptypes 8
      allow icmp from any to any out icmptypes 0
      skipto 10000 ip from any to any via gif0
  :

10000 check-state :gif_nat
      tcp-setmss 14xx tcp from any to any tcpflags syn
  :

15000 nat 100 ip from any to any keep-state :gif_nat
      allow ip from any to any

20000 check-state :ip6_flow
  :
      allow ipencap from <CE IPv6 240b:xxxxxxxx> to <PEERADDR 2404:xxxxxxxx> out
      allow ipencap from <PEERADDR 2404:xxxxxxxx> to <CE IPv6 240b:xxxxxxxx> in
  :
      deny ip from any to any


** $B%G%U%)%k%H%k!<%H@_Dj(B **
route delete 0.0.0.0
route add 0.0.0.0 -interface gif0



$B0J2<!"%Q%C%A!J(Breleng/12.2$B!K(B->
Index: sys/netinet/libalias/alias_db.c
===================================================================
--- sys/netinet/libalias/alias_db.c	(revision 369447)
+++ sys/netinet/libalias/alias_db.c	(working copy)
@@ -570,6 +570,14 @@
    another link concurrently.  This is because GetNewPort() looks for
    unused triplets: (dest addr, dest port, alias port). */
 
+#define MAPE_IPV6_PREFIX (0x240bxxxxxxxxxxxxL) $B"((BIPv6 $B%W%l%U%#%C%/%9!?(B64
+#define MAPE_PSID ((int)((MAPE_IPV6_PREFIX >> 8) & 0xff))
+static int convertToMapE( int v ){
+       v = (v % 0xf0) + 0x10;
+       v = ((v & 0xf0) << 8) | (MAPE_PSID<<4) | (v & 0x0f);
+       return v;
+}
+
 static int
 GetNewPort(struct libalias *la, struct alias_link *lnk, int alias_port_param)
 {
@@ -577,6 +585,7 @@
 	int max_trials;
 	u_short port_sys;
 	u_short port_net;
+	int mape_flag = 0;
 
 	LIBALIAS_LOCK_ASSERT(la);
 /*
@@ -603,8 +612,10 @@
 			 * this is already in use, the remainder of the
 			 * trials will be random.
 			 */
+			mape_flag = 1;
 			port_net = lnk->src_port;
 			port_sys = ntohs(port_net);
+			max_trials = 240 + GET_NEW_PORT_MAX_ATTEMPTS;
 		} else {
 			/* First trial and all subsequent are random. */
 			port_sys = arc4random() & ALIAS_PORT_MASK;
@@ -628,6 +639,10 @@
 		int go_ahead;
 		struct alias_link *search_result;
 
+		if ( mape_flag ){
+			port_net = htons(convertToMapE(port_sys));
+		}
+
 		search_result = FindLinkIn(la, lnk->dst_addr, lnk->alias_addr,
 		    lnk->dst_port, port_net,
 		    lnk->link_type, 0);
@@ -637,6 +652,16 @@
 		else if (!(lnk->flags & LINK_PARTIALLY_SPECIFIED)
 		    && (search_result->flags & LINK_PARTIALLY_SPECIFIED))
 			go_ahead = 1;
+		else if ( mape_flag && search_result->link_type == LINK_TCP
+				&& search_result->data.tcp->state.out != ALIAS_TCP_STATE_CONNECTED
+				&& search_result->data.tcp->state.in != ALIAS_TCP_STATE_CONNECTED
+				&& search_result->expire_time == TCP_EXPIRE_DEAD
+				&& i >= GET_NEW_PORT_MAX_ATTEMPTS 
+			){
+			DeleteLink(search_result);
+			search_result = NULL;
+			go_ahead = 1;
+		}
 		else
 			go_ahead = 0;
 
@@ -658,9 +683,14 @@
 			}
 #endif
 		}
-		port_sys = arc4random() & ALIAS_PORT_MASK;
-		port_sys += ALIAS_PORT_BASE;
-		port_net = htons(port_sys);
+		if ( mape_flag && i >= GET_NEW_PORT_MAX_ATTEMPTS ){
+			port_sys++;
+		}
+		else{
+			port_sys = arc4random() & ALIAS_PORT_MASK;
+			port_sys += ALIAS_PORT_BASE;
+			port_net = htons(port_sys);
+		}
 	}
 
 #ifdef LIBALIAS_DEBUG
Index: sys/netinet6/in6_gif.c
===================================================================
--- sys/netinet6/in6_gif.c	(revision 369447)
+++ sys/netinet6/in6_gif.c	(working copy)
@@ -324,7 +324,7 @@
 	 * it is too painful to ask for resend of inner packet, to achieve
 	 * path MTU discovery for encapsulated packets.
 	 */
-	return (ip6_output(m, 0, NULL, IPV6_MINMTU, 0, NULL, NULL));
+	return (ip6_output(m, 0, NULL, 0/*IPV6_MINMTU*/, 0, NULL, NULL));
 }
 
 static int
<-$B%Q%C%A$3$3$^$G(B









On Sat, 6 Mar 2021 05:01:44 +0900
Hiroo Ono ($B>.Ln42@8(B) <hiroo.ono+freebsd@gmail.com> wrote:

> $B>.Ln42@8$G$9!#(B
> 
> $B7kO@$+$i8@$&$H!";DG0$G$9$,(B FreeBSD $B$G$O<BMQ>eL5M}$G$9!#(B
> 
> 2021$BG/(B3$B7n(B5$BF|(B($B6b(B) 23:51 WATANABE Takeo <take@kasaneiro.jp>:
> >
> > $BEOIt$H?=$7$^$9!#(B
> >
> > $B%U%l%C%D8w%/%m%9$r7@Ls$7$F!$(B
> > JPNlE$B<R$N!V(Bv6$B%W%i%9(B $B8GDj(BIP$B%5!<%S%9!W$KBP1~$7$?(BISP(*1)$B$H7@Ls$7$F!$(B
> > FreeBSD$B$rMQ$$$F!$(Bv4 over v6 IPoE$B@\B3$K$h$k%$%s%?!<%M%C%H@\B3$r;n$_$F$$$^$9!#(B
> >
> > (*1) https://www.jpne.co.jp/service/v6plus-static/
> >
> > $B$+$J$j%M%C%H$N3$$r1K$$$@$N$G$9$,!$$3$l$H8@$C$?@h9T;vNc$N5-;v$,8+$D$+$i$:!$(B
> > $B:C@^$7$F$$$^$9!#$?$@!$(B
> >
> > https://people.allbsd.org/~hrs/FreeBSD/sato-FBSDW20170825.pdf
> >
> > $B$G$O!$!V(Bgif$B%H%s%M%k$G$OBg>fIW!W(B(p.15)$B$H$N5-:\$,$"$j!$$G$-$k$b$N$@$H?.$8$F$$$"$9!#(B
> 
> $B$=$N;qNA$K$OF1$8$/!V(BMAP-E $B$K$OHsBP1~!W$H$"$k$+$H;W$$$^$9$,!"(BV6$B%W%i%9$GDs6!$5$l$F$$$k$N$O(B
> MAP-E $BJ}<0$G$9!#(B
> $B;29M(B: https://www.slideshare.net/yuyarin/i-pv4-ipv6coexistance
> 
> https://bokut.in/note/2020/03/
> $B$K$h$l$P!"(Bpf $B$r;H$($P(B*$B0l1~(B*$BF0$/$H$3$m$^$G@_Dj2DG=$J$h$&$G$9$,!"<BMQ$K$O$J$i$J$$$h$&$G$9!#(B
> NetBSD $B$d(B OpenBSD $B$G$O$I$&$J$N$+$OJ,$+$j$^$;$s!#(B
> 
> $BBP1~:v$H$7$F$O!"(B
> (1) MAP-E $BJ}<0$KBP1~$7$F$$$k%k!<%?!<$+(B Linux $B$rMQ$$$F@_Dj$9$k(B
> (2) IPoE $BJ}<0$r<h$C$F$$$k(B ISP $B$K>h$j49$($k(B
> (3) MAP-E$BJ}<0$KBP1~$9$k$h$&!"(BFreeBSD $B$N(B NAT $B<~$j$K<j$rF~$l$k(B
> 
> $B$N$I$l$+$+$J$H;W$$$^$9!#(B
> 
> > $B$H$3$m$,!$;d$O%H%s%M%k$rD%$C$?@\B3$r9T$C$?$3$H$,$J$/!$(B
> > $B2?$r$I$N$h$&$K$7$?$i$h$$$N$+J,$+$j$^$;$s!#(B
> >
> > $B!V65$($F7/!W$K$J$C$F$7$^$$?=$7Lu$"$j$^$;$s$,!$(B
> > $B$I$J$?$+65$($FD:$1$^$;$s$G$7$g$&$+!#(B
> >
> > $B!|(BISP$B$+$i$b$i$C$F$$$k>pJs!#(B
> >
> > 1. IPv6$B%W%l%U%#%C%/%9(B          :  aaaa : bbbb :cccc : dddd : eeee : ffff : gggg : hhhh / 56
> > 2. IPv4$B%"%I%l%9(B                     :  192. 168. 100. 119 / 32
> > 3. $B%$%s%?!<%U%'!<%9(BID           :  iiiii : jjjjj : kkkk : llll
> > 4. Border Relay $B%"%I%l%9(B    :  mmmm : nnnn : oooo : pp :: 65
> >
> >
> > $B!|$&$A$N%M%C%H%o!<%/4D6-$O2<5-$N$H$*$j$G$9!#(B
> >
> >                                         +------------------+
> > 192.168.131.64/27 ------| FreeBSD Router|-----ONU----NGN$BLV(B----VNE(JPNE)----The Net
> >                           LAN1( .65 )---------LAN2($B$J$7(B)
> >
> >
> > $B!|%d%^%O$5$s$N@_Dj;vNc=8(B
> > http://www.rtpro.yamaha.co.jp/RT/docs/ipip/index.html#setting11
> >
> > $B$+$i!$(B
> >
> > LAN1$B$N%"%I%l%9$O!V(B192.168.131.65$B!W$+$D!$(B
> > $B!V(BRA$B%W%m%-%7$G<hF@$7$?%W%l%U%#%C%/%9(B) : ($B%$%s%?!<%U%'%$%9(BID) / 64$B!W$K$J$k$h$&$G$9!#(B
> >
> > # $B$&$A$N2s@~$O$R$+$jEEOCL$7@Ls$G$9!#(B
> >
> > $B$I$N$h$&$K%M%C%H%o!<%/$N@_Dj(B($B$H$/$K!$(BIPIP$B%H%s%M%k(B(gif)$B$rD%$l$P$h$$$+!$(B
> > $B$I$&$+$465<(4j$$$^$9!#(B
> >
> > $B59$7$/$*4j$$CW$7$^$9!#(B
> >
> > ---
> > $BEOIt(B $B3YO:(B(WATANABE, Takeo) / JA1CPJ
> > take@kasaneiro.jp
> > _______________________________________________
> > freebsd-users-jp@freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> > To unsubscribe, send any mail to "freebsd-users-jp-unsubscribe@freebsd.org"
> _______________________________________________
> freebsd-users-jp@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> To unsubscribe, send any mail to "freebsd-users-jp-unsubscribe@freebsd.org"





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202103121429.12CETcC6087205>